/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package ec.edu.ups.cidi.siia.plamdep.ejecutor.GestionAlgoritmos;

import java.util.ArrayList;

import ec.edu.ups.cidi.siia.plamdep.modelo.algortimos.*;
import ec.edu.ups.cidi.siia.plamdep.ejecutor.Servicios;

/**
 * 
 * @author Usuario
 */
public class GestorAlgoritmos {
	// contenedores
	private static ArrayList<AlgComparacionContainer> comparacionAlgs = new ArrayList();
	private static ArrayList<AlgExtractorContainer> extractorAlgs = new ArrayList();

	// servicios
	public static AlgoritmoComparacion getAlgoritmoComparacion(String nombreAlg) {
		for (AlgComparacionContainer ct : comparacionAlgs)
			if (ct.nombre.compareToIgnoreCase(nombreAlg) == 0)
				return ct.getInstancia();
		return null;
	}

	public static AlgoritmoExtraccion getAlgoritmoExtraccion(String nombreAlg) {
		for (AlgExtractorContainer ct : extractorAlgs)
			if (ct.nombre.compareToIgnoreCase(nombreAlg) == 0)
				return ct.getInstancia();

		return null;
	}

	public static void addAlgoritmoComparacion(AlgComparacionContainer alg) {
		alg.setAnalizador(Servicios.getAnalizadorLexico());
		GestorAlgoritmos.comparacionAlgs.add(alg);
	}

	public static void addAlgoritmoExtraccion(AlgExtractorContainer alg) {
		alg.setAnalizador(Servicios.getAnalizadorLexico());
		GestorAlgoritmos.extractorAlgs.add(alg);
	}

	public static void quitarAlgoritmos() {
		extractorAlgs.removeAll(extractorAlgs);
		comparacionAlgs.removeAll(comparacionAlgs);
	}
}
